OpenBuildings GenerativeComponents Help

DMatrix3d

A DMatrix3d is usually a rotation, although it could also include a scale or a sheer. The DMatrix3d is a 3x3 matrix made of nine doubles. It can be created a number of ways including from diagonal DTransform3d from DVector3d, DPoint4d, DPoint3d's, rotation Angles and Axes or scale:

	new DMatrix3d(diagonalValue)
	new DMatrix3d(double axx, double ayy, double azz)
	new DMatrix3d(ref DTransform3d Transform)
	new DMatrix3d(double axx, double axy, double axz,
double ayx, double ayy, double ayz, double azx, double azy, double
azz)

Matrixes can also be initialized in a number of ways

	InitColumns(ref DVector3d XColumn, ref DVector3d YColumn,
ref DVector3d ZColumn)
	InitFromOneVector(ref DVector3d Vector, int AxisIndex,
bool normalize)
	InitFrom2Vectors(ref DVector3d XVector, ref DVector3d
YVector)

Furthermore, there are a number of ways to create orthogonal matrixes

	InitOrthogonalFrameFromOriginXY(ref DPoint3d Origin,
ref DPoint3d XPoint, ref DPoint3d YPoint)
	InitOrthogonalFrameFromXYVectors(ref DVector3d XVector,
ref DVector3d YVector)
	InitOrthogonalFrameFromZXVectors(ref DVector3d VectorZ,
ref DVector3d VectorX)

A rotation Matrix can be created either by a rotation around an axis, X = 0, Y = 1, Z = 2, or a rotation around a DVector3d

	InitRotation(int AxisIndex, DAngle angle)
	InitRotation(ref DVector3d Axis, DAngle angle)

Identity Matrix

	DMatrix3d.Identity()

Matrix Multiplication

	ProductOf(ref DMatrix3d AA, ref DMatrix3d BB)